/////////////////////////////////////////////////////////////////
//  MSAReadMatrix.h
//
//  Specifies scoring matrices and their structure 
//  for global pair-HMM with partition function
/////////////////////////////////////////////////////////////////

#ifndef _MSA_READ_MATRIX_H
#define _MSA_READ_MATRIX_H

typedef struct {
	char monomers[26]; /* amino or nucleic acid order */
	float matrix[676]; /* entries of the score matix, 26*26=676 */
} score_matrix;

//default protein sequence scoring matrix as well as default scoring matrix of the PROBALIGN
//also used when -prot option is used

score_matrix gonnet_160 = { "ABCDEFGHIKLMNPQRSTVWXYZ",

{ 4.6, 0.0, 0.0, 0.3, 0.0, 13.5, -1.1, 0.0, -5.3, 7.0, -0.4, 0.0, -5.2, 3.4,
		5.9, -3.8, 0.0, -1.8, -7.0, -6.2, 9.1, 0.2, 0.0, -3.4, -0.7, -2.1, -7.6,
		8.2, -1.8, 0.0, -2.3, -0.1, -0.1, -0.7, -2.7, 9.3, -1.8, 0.0, -2.5,
		-6.2, -4.3, 0.3, -7.0, -3.7, 5.9, -1.2, 0.0, -4.8, -0.1, 1.3, -5.3,
		-2.4, 0.2, -3.5, 5.5, -2.2, 0.0, -2.9, -6.5, -4.5, 1.9, -6.7, -3.2, 3.0,
		-3.4, 5.7, -1.2, 0.0, -1.9, -5.0, -3.1, 1.4, -5.2, -2.1, 2.9, -2.1, 3.4,
		7.6, -1.2, 0.0, -3.1, 2.6, 0.5, -4.7, -0.2, 1.5, -4.4, 0.8, -4.8, -3.6,
		6.5, -0.1, 0.0, -5.2, -1.9, -1.4, -5.8, -3.0, -2.2, -4.3, -1.6, -3.5,
		-4.2, -2.2, 9.6, -0.7, 0.0, -4.2, 0.6, 2.3, -4.1, -2.1, 1.7, -3.2, 2.0,
		-2.4, -1.2, 0.5, -0.8, 5.6, -1.6, 0.0, -3.5, -1.6, -0.3, -5.3, -2.1,
		0.3, -4.1, 3.5, -3.5, -2.9, -0.4, -2.1, 1.7, 7.1, 1.6, 0.0, -0.2, 0.0,
		-0.3, -4.5, -0.1, -0.8, -3.3, -0.4, -3.6, -2.3, 1.1, 0.0, -0.2, -0.9,
		4.4, 0.5, 0.0, -1.4, -0.6, -0.8, -3.6, -2.4, -0.8, -1.2, -0.2, -2.4,
		-1.1, 0.3, -0.4, -0.4, -0.9, 2.3, 5.0, 0.1, 0.0, -0.6, -4.9, -3.0, -0.8,
		-5.2, -3.5, 4.0, -3.0, 1.7, 1.4, -3.8, -3.2, -2.7, -3.4, -2.0, 0.0, 5.3,
		-5.5, 0.0, -2.1, -7.8, -6.4, 3.2, -5.5, -1.9, -3.4, -5.4, -2.0, -2.2,
		-5.5, -7.4, -4.0, -2.4, -4.7, -5.4, -4.5, 15.8, 0.0, 0.0, 0.0, 0.0, 0.0,
		0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
		0.0, 0.0, -3.7, 0.0, -1.3, -4.2, -4.4, 5.6, -6.0, 2.7, -2.0, -3.5, -1.1,
		-1.3, -2.2, -4.8, -2.9, -2.9, -2.8, -3.2, -2.4, 3.8, 0.0, 10.0, 0.0,
		0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
		0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }

};

//normalized blosum_62 scoring matrix for computing protein sequence similarity
score_matrix normalized_blosum_62 = {

"ABCDEFGHIKLMNPQRSTVWXYZ",
{
0.533333333,																																											
0.133333333,0.533333333,																																									
0.266666667,0.066666667,0.866666667,																																							
0.133333333,0.533333333,0.066666667,0.666666667,																																					
0.2,0.333333333,0,0.4,0.6,																																			
0.133333333,0.066666667	,0.133333333,0.066666667,0.066666667,0.666666667,																																	
0.266666667,0.2	,0.066666667,0.2,0.133333333,0.066666667,0.666666667,																															
0.133333333,0.266666667	,0.066666667,0.2,0.266666667,0.2,0.133333333,0.8,																												
0.2,0.066666667	,0.2,0.066666667,0.066666667,0.266666667,0,0.066666667,0.533333333,																											
0.2,0.266666667	,0.066666667,0.2,0.333333333,0.066666667,0.133333333,0.2,0.066666667,0.6,																									
0.2,0,0.2,0,0.066666667,0.266666667	,0,0.066666667	,0.4,0.133333333,0.533333333,																				
0.2,0.066666667	,0.2,0.066666667,0.133333333,0.266666667,0.066666667	,0.133333333,0.333333333,0.2,0.4,0.6,																
0.133333333,0.466666667	,0.066666667,0.333333333,0.266666667,0.066666667,0.266666667,0.333333333,0.066666667,	0.266666667,0.066666667	,0.133333333,0.666666667,																
0.2,0.133333333	,0.066666667,0.2,0.2,	0,0.133333333,	0.133333333,0.066666667	,0.2,0.066666667,0.133333333,	0.133333333,0.733333333	,																
0.2,0.266666667	,0.066666667,0.266666667,0.4,0.066666667,0.133333333,	0.266666667,0.066666667	,0.333333333,	0.133333333,0.266666667	,0.266666667,0.2,0.6,										
0.2,0.2	,0.066666667,0.133333333,0.266666667,0.066666667,0.133333333,0.266666667,0.066666667,0.4,	0.133333333,0.2,0.266666667,0.133333333,0.333333333,0.6	,											
0.333333333,0.266666667	,0.2,0.266666667,0.266666667,0.133333333,0.266666667,0.2,0.133333333,	0.266666667,0.133333333	,0.2,0.333333333,0.2,0.266666667,0.2,0.533333333,										
0.266666667,	0.2,0.2,0.2,	0.2,	0.133333333,0.133333333,0.133333333,0.2	,0.2,0.2,0.2,0.266666667,0.2,	0.2,0.2	,0.333333333,0.6,		
0.266666667,0.066666667	,0.2,0.066666667,0.133333333,0.2,0.066666667,0.066666667,0.466666667,0.133333333,	0.333333333,0.333333333,	0.066666667,0.133333333,0.133333333	,0.066666667,	0.133333333,	0.266666667,	0.533333333,
0.066666667,0,0.133333333,0,0.066666667	,0.333333333	,	0.133333333,	0.133333333,0.066666667	,	0.066666667,	0.133333333	,0.2	,	0,	0,0.133333333	,0.066666667	,	0.066666667	,	0.133333333	,	0.066666667	,	1,			
0.266666667,0.2	,0.133333333	,	0.2	,	0.2	,	0.2	,	0.2,0.2	,	0.2,0.2	,0.2	,	0.2	,	0.2	,	0.133333333,	0.2	,0.2	,	0.266666667	,	0.266666667,0.2	,0.133333333,	0.2	,			
0.133333333,0.066666667	,	0.133333333	,	0.066666667	,	0.133333333	,	0.466666667,	0.066666667,0.4	,0.2,	0.133333333	,	0.2	,	0.2,	0.133333333	,	0.066666667,	0.2,	0.133333333,0.133333333	,0.133333333	,	0.2	,	0.4,0.2	,	0.733333333,
0.2,0.333333333	,0.066666667	,0.333333333	,	0.533333333	,	0.066666667,	0.133333333,	0.266666667,0.066666667	,0.333333333	,	0.066666667,	0.2,	0.266666667,	0.2	,	0.466666667,0.266666667	,0.266666667,	0.2	,	0.133333333,	0.066666667	,	0.2,0.133333333	,0.533333333

}
};

//normalized blosum_30 scoring matrix for computing protein sequence similarity
score_matrix normalized_blosum_30 = {

"ABCDEFGHIKLMNPQRSTVWXYZ",
{
0.407407407	,																																											
0.259259259	,	0.444444444	,																																									
0.148148148	,	0.185185185	,	0.888888889	,																																							
0.259259259	,	0.444444444	,	0.148148148	,	0.592592593	,																																					
0.259259259	,	0.259259259	,	0.296296296	,	0.296296296	,	0.481481481	,																																			
0.185185185	,	0.148148148	,	0.148148148	,	0.074074074	,	0.111111111	,	0.62962963	,																																	
0.259259259	,	0.259259259	,	0.111111111	,	0.222222222	,	0.185185185	,	0.148148148	,	0.555555556	,																															
0.185185185	,	0.185185185	,	0.074074074	,	0.185185185	,	0.259259259	,	0.148148148	,	0.148148148	,	0.777777778	,																													
0.259259259	,	0.185185185	,	0.185185185	,	0.111111111	,	0.148148148	,	0.259259259	,	0.222222222	,	0.185185185	,	0.481481481	,																											
0.259259259	,	0.259259259	,	0.148148148	,	0.259259259	,	0.333333333	,	0.222222222	,	0.222222222	,	0.185185185	,	0.185185185	,	0.407407407	,																									
0.222222222	,	0.222222222	,	0.259259259	,	0.222222222	,	0.222222222	,	0.333333333	,	0.185185185	,	0.222222222	,	0.333333333	,	0.185185185	,	0.407407407	,																							
0.296296296	,	0.185185185	,	0.185185185	,	0.148148148	,	0.222222222	,	0.185185185	,	0.185185185	,	0.333333333	,	0.296296296	,	0.333333333	,	0.333333333	,	0.481481481	,																					
0.259259259	,	0.407407407	,	0.222222222	,	0.296296296	,	0.222222222	,	0.222222222	,	0.259259259	,	0.222222222	,	0.259259259	,	0.259259259	,	0.185185185	,	0.259259259	,	0.555555556	,																			
0.222222222	,	0.185185185	,	0.148148148	,	0.222222222	,	0.296296296	,	0.111111111	,	0.222222222	,	0.296296296	,	0.148148148	,	0.296296296	,	0.148148148	,	0.111111111	,	0.148148148	,	0.666666667	,																	
0.296296296	,	0.222222222	,	0.185185185	,	0.222222222	,	0.333333333	,	0.148148148	,	0.185185185	,	0.259259259	,	0.185185185	,	0.259259259	,	0.185185185	,	0.222222222	,	0.222222222	,	0.259259259	,	0.555555556	,															
0.222222222	,	0.185185185	,	0.185185185	,	0.222222222	,	0.222222222	,	0.222222222	,	0.185185185	,	0.222222222	,	0.148148148	,	0.296296296	,	0.185185185	,	0.259259259	,	0.185185185	,	0.222222222	,	0.37037037	,	0.555555556	,													
0.296296296	,	0.259259259	,	0.185185185	,	0.259259259	,	0.259259259	,	0.222222222	,	0.259259259	,	0.222222222	,	0.222222222	,	0.259259259	,	0.185185185	,	0.185185185	,	0.259259259	,	0.222222222	,	0.222222222	,	0.222222222	,	0.407407407	,											
0.296296296	,	0.259259259	,	0.185185185	,	0.222222222	,	0.185185185	,	0.185185185	,	0.185185185	,	0.185185185	,	0.259259259	,	0.222222222	,	0.259259259	,	0.259259259	,	0.296296296	,	0.259259259	,	0.259259259	,	0.148148148	,	0.333333333	,	0.444444444	,									
0.296296296	,	0.185185185	,	0.185185185	,	0.185185185	,	0.148148148	,	0.296296296	,	0.148148148	,	0.148148148	,	0.407407407	,	0.185185185	,	0.296296296	,	0.259259259	,	0.185185185	,	0.111111111	,	0.148148148	,	0.222222222	,	0.222222222	,	0.296296296	,	0.444444444	,							
0.074074074	,	0.074074074	,	0.185185185	,	0.111111111	,	0.222222222	,	0.296296296	,	0.296296296	,	0.074074074	,	0.148148148	,	0.185185185	,	0.185185185	,	0.148148148	,	0	,	0.148148148	,	0.222222222	,	0.259259259	,	0.148148148	,	0.074074074	,	0.148148148	,	1	,					
0.259259259	,	0.222222222	,	0.185185185	,	0.222222222	,	0.222222222	,	0.222222222	,	0.222222222	,	0.222222222	,	0.259259259	,	0.259259259	,	0.259259259	,	0.259259259	,	0.259259259	,	0.222222222	,	0.259259259	,	0.222222222	,	0.259259259	,	0.259259259	,	0.259259259	,	0.185185185	,	0.222222222	,			
0.111111111	,	0.148148148	,	0.037037037	,	0.222222222	,	0.185185185	,	0.37037037	,	0.148148148	,	0.259259259	,	0.222222222	,	0.222222222	,	0.37037037	,	0.222222222	,	0.111111111	,	0.185185185	,	0.222222222	,	0.259259259	,	0.185185185	,	0.222222222	,	0.296296296	,	0.444444444	,	0.222222222	,	0.592592593	,	
0.259259259	,	0.259259259	,	0.259259259	,	0.259259259	,	0.444444444	,	0.111111111	,	0.185185185	,	0.259259259	,	0.148148148	,	0.296296296	,	0.222222222	,	0.222222222	,	0.222222222	,	0.259259259	,	0.407407407	,	0.259259259	,	0.222222222	,	0.222222222	,	0.148148148	,	0.222222222	,	0.259259259	,	0.185185185	,	0.407407407

}
};

//default nucleotide sequence scoring matrix
//used when -nuc option is used
score_matrix nuc_simple = {

"ABCDGHKMNRSTUVWXY",

{ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
		0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
		0, 0, 0, 0, 0, 0, 0 }

//Ribosum85-60
		/*
		 {
		 2.22,
		 0,  0,
		 -1.86,  0,  1.16,
		 0,  0,  0,  0,
		 -1.46,  0,  -2.48,  0,  1.03,
		 0,  0,  0,  0,  0,  0,
		 0,  0,  0,  0,  0,  0,  0,
		 0,  0,  0,  0,  0,  0,  0,  0,
		 0,  0,  0,  0,  0,  0,  0,  0,  0,
		 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
		 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
		 -1.39,  0,  -1.05,  0,  -1.74,  0,  0,  0,  0,  0,  0,  1.65,
		 -1.39,  0,  -1.05,  0,  -1.74,  0,  0,  0,  0,  0,  0,  0,  1.65,
		 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
		 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
		 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
		 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
		 }
		 */

		};

#endif
